This invention relates to data processing systems of the type in which a plurality of data processing modules send messages to each other over a time shared data bus; and in particular, it relates to circuits that are incorporated into the modules which obtain the use of the bus.
When a data bus is time shared by several modules, some means must be provided to determine which of the modules can use the bus at any particular time. One common way of achieving this in the prior art was to provide a separate control line for each module that could use the bus. For example, if sixteen modules used the bus, then sixteen control lines would be provided. If a module wanted to use the bus, it would generate a signal on its control line. Each such signal was assigned a priority; and the module which generated the highest priority signal was granted the use of the bus.
However, a serious drawback of this type system is that it is impractical to use with a large number of modules since the number of control lines becomes too burdensome. For example, if a bus is to be time shared by two hundred fifty-six modules, then two hundred fifty-six control lines are required. Typically, the data bus itself has only eight, sixteen, or thirty-two data lines; and so two hundred fifty-six control lines would far exceed the number of data lines.
Another type of prior art system overcomes the above problem by intercoupling the modules in a daisy-chained arrangement. In this arrangement, one control line intercouples a transmitter in the first module to a receiver in the second module; another control line intercouples a transmitter in the second module to a receiver in the third module; etc. If the first module wants to use the bus, then it generates a bus request signal on its transmitter. That signal passes through all the remaining modules which then respond by inhibiting their own bus requests. If the first module does not request the use of the bus, then the second module can generate the bus request signal from its transmitter. This signal is received and recognized by the remaining modules and they in turn inhibit making their own requests. Thus, in this daisy-chained system, each module may request the use of the bus only if it does not receive a request to use the bus from another module.
However, a problem with this system is that the priority of each device is inherently fixed. That priority is determined solely by the module's position in the daisy chain. This limitation severely limits the modules which are near the end of the daisy chain since they have no way of sending messages with a high priority. Such messages are desirable, for example, when a module's data buffer is filling up and approaching an overflow condition, when a module's data buffer is emptying and approaching an underflow condition, or when an emergency situation of any type arises which needs immediate attention.
Accordingly, a primary object of the present invention is to provide an improved data processing system in which the above described problems are overcome.